const Redis = require( 'ioredis' );

const redis = new Redis();

(async ()=>{

    // 操作 string 数据
    await redis.set( 'student-name' , '窦宏弘');
    let result = await redis.get( 'student-name' );
    console.log( result );

    // 操作 hash 数据
    await redis.hmset( 'person' , { id: 2001 , name: '窦之鹏' , gender: '靓仔' });
    result = await redis.hmget( 'person' , 'name' );
    console.log( result );

    await redis.del( 'persons' );

    // 操作 list 数据
    await redis.lpush( 'persons' , JSON.stringify( { name: '王永年' , gender: '靓仔' } ) );
    result = await redis.lrange( 'persons' , 0 , 1 );
    console.log( result );

    await redis.del( 'databases' );
    // 操作 set 数据
    await redis.sadd( 'databases' , 'MySQL' );
    await redis.sadd( 'databases' , 'Oracle' );
    await redis.sadd( 'databases' , 'Oracle' );
    await redis.sadd( 'databases' , 'DB2' );
    await redis.sadd( 'databases' , 'DB2' );
    await redis.sadd( 'databases' , 'Redis' );
    await redis.sadd( 'databases' , 'Redis' );
    await redis.sadd( 'databases' , 'Mongodb' );
    result = await redis.smembers( 'databases' );
    console.log( result );

    await redis.del( 'loongs' );

    // 操作 zset 数据
    await redis.zadd( 'loongs' , 10 , '敖广' );
    await redis.zadd( 'loongs' , 2 , '敖钦' );
    await redis.zadd( 'loongs' , 13 , '敖闰' );
    await redis.zadd( 'loongs' , 4 , '熬顺' );
    result = await redis.zrangebyscore( 'loongs' , 2 , 4 );
    console.log( result );

})();